Stream 可翻譯為「串流」或「資料流」,白話來說,
就是Start using data,before it has finish loading,讓資料還在傳輸時,就直接使用。
當從串流(stream)中讀取資料時,通常會以固定大小的區塊來處理資料。這些區塊或片段通常被稱為 "chunks",每個 "chunk" 包含串流中一部分的資料
我們可以用Node.js建立read stream和write stream。
首先準備一個有龐大的txt檔blog3,透過建立readstream的方式,取得一個一個chunk的資料,會呈現二進位數據的buffer的狀態。
const readStream = fs.createReadStream('./docs/blog3.txt');
我們也可以透過utf8 encode,發現這些一塊一塊的資料,合起來就是blog3的內容。
const readStream =fs.createReadStream('./docs/blog3.txt',{ encoding: 'utf8'});
接著我們透過writestream,當接收到一塊chunk的時候,就立刻寫進blog裡。
const writeStream = fs.createWriteStream('./docs/blog4.txt');
readStream.on('data',chunk =>{
console.log('-----NEW CHUNK-----');
console.log(chunk);
writeStream.write('\nNEW CHUNK:\n');
writeStream.write(chunk);
});
這樣就可以達到Start using data,before it has finish loading的效果。
我們甚至可以用pipe,寫成一句readStream.pipe(writeStream);